#pragma once

template <class iterator, class Ref, class Ptr>
class reverse_iterator
{
public:
	typedef reverse_iterator< iterator, Ref, Ptr> Self;

	reverse_iterator(iterator it)
		:_it(it)
	{}

	Self& operator++()
	{
		--_it;
		return *this;
	}

	Self& operator--()
	{
		++_it;
		return *this;
	}

private:
	iterator _it;
};